package com.atguigu.schedule.service;

import com.atguigu.schedule.pojo.FaceDetectionResult;
import com.atguigu.schedule.pojo.PersonTrackingResult;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 人脸识别和行人跟踪服务接口
 */
public interface FaceTrackingService {
    
    /**
     * 检测图像中的人脸
     * @param imageData 图像数据
     * @return 人脸检测结果列表
     */
    List<FaceDetectionResult> detectFaces(byte[] imageData);
    
    /**
     * 检测图像中的行人
     * @param imageData 图像数据
     * @return 行人检测结果列表
     */
    List<PersonTrackingResult> detectPersons(byte[] imageData);
    
    /**
     * 识别指定人脸
     * @param faceImageData 人脸图像数据
     * @return 识别结果（姓名或Unknown）
     */
    String recognizeFace(byte[] faceImageData);
    
    /**
     * 添加新的人脸样本
     * @param name 人员姓名
     * @param imageData 人脸图像数据
     * @return 是否添加成功
     */
    boolean addFaceSample(String name, byte[] imageData);
    
    /**
     * 训练人脸识别模型
     * @return 是否训练成功
     */
    boolean trainFaceModel();
    
    /**
     * 获取所有已注册的人脸信息
     * @return 人脸信息列表
     */
    List<String> getRegisteredFaces();
    
    /**
     * 删除指定人员的人脸数据
     * @param name 人员姓名
     * @return 是否删除成功
     */
    boolean deleteFaceData(String name);
}
